package com.ylsk.check.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ylsk.check.domain.CheckItemRecord;
import com.ylsk.common.annotation.Excel;
import com.ylsk.system.domain.FileSimple;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 施工检查问题对象 ins_check_problem
 *
 * @author yangsy
 * @date 2023-12-21
 */
@Data
public class CheckProblemVO implements Serializable
{
    private static final long serialVersionUID = 1L;

    //  检查问题属性
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /** 施工检查问题id */
    private Long checkProblemId;

    /** 施工检查记录id */
    private Long checkRecordId;

    /** 问题流水单号 */
    @Excel(name = "问题流水单号")
    private String checkProblemNum;

    /** 问题类型 */
    @Excel(name = "问题类型",readConverterExp = "0=施工问题,1=撤场问题")
    private Integer problenType;

    /** 问题内容 */
    private String problemContent;

    /** 负责人 */
    private Long head;

    /** 负责人名称 */
    @Excel(name = "负责人")
    private String headName;

    private String telePhone;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "检查时间",width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 问题状态(0 :未整改 1:已整改 ) */
    @Excel(name = "问题状态",readConverterExp = "0=未整改,1=已整改")
    private Integer problemStatus;



    //检查记录属性
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /** 问题现场照及视频 */
    private Long problemFileId;

    /** 问题现场照及视频集合 */
    private List<FileSimple> problemFile;

    /** 检查人名称 */
    @Excel(name = "检查人")
    private String checkByName;

    /** 同行检查人名称 */
    @Excel(name = "同行检查人")
    private String peerReviewerName;

    /** 检查类型 */
    private Integer checkType;

    /** 检查时间*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date checkTime;

    /** 所属管辖大队*/
    @Excel(name = "所属管辖大队")
    private String deptName;

    /** 经度*/
    private BigDecimal checkLongitude;

    /** 纬度*/
    private BigDecimal checkLatitude;

    /** 道路名称*/
    private String checkRoadName;

    /** 方向*/
    private String checkDirection;

    /***
     * 施工检查记录
     */
    private List<CheckItemRecord> checkItemRecordList;

    //项目报备信息
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /** 项目报备id */
    private Long reportInfoId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 报备单号（流水号按照一定的规则生成） */
    @Excel(name = "报备单号")
    private String reportNum;

    //    施工单位
    @Excel(name = "施工单位")
    private String construnctionUnit;

    /** 建设单位 */
    @Excel(name = "建设单位")
    private String buildUnit;

    /** 施工开始路段name */
    @Excel(name = "施工开始路段")
    private String expresswayStartSectionName;

    /** 施工结束路段name */
    @Excel(name = "施工结束路段")
    private String expresswayEndSectionName;

    /** 施工开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date construnctionStartTime;

    /**施工状态 0:未进场 1:非占道施工  2:占道施工 3:撤场  4:结束 */
    private Integer constructionStatus;

    //整改报备信息
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
     * 整改上报id
     */
    private Long rectificationReportId;

    /** 整改照片和视频 */
    private Long rectificationFileId;

    /** 整改照片和视频集合 */
    private List<FileSimple> rectificationFile;

    /**
     * 整改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "整改时间",width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date rectificationTime;


    /**
     * 整改描述
     */
    private String rectificationRemark;

    /** 经度*/
    private BigDecimal rectificationLongitude;

    /** 纬度*/
    private BigDecimal rectificationLatitude;

    /** 道路名称*/
    private String rectificationRoadName;

    /** 方向*/
    private String rectificationDirection;

    //整改复查信息
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /**
     * 整改复查id
     */
    private Long rectificationReviewId;


    /** 复查现场照及视频 */
    private Long reviewFileId;

    /** 复查现场照及视频集合 */
    private List<FileSimple> reviewFile;

    /** 复查人 */
    private Long reviewBy;

    /** 复查人名称*/
    @Excel(name = "复查人")
    private String reviewByName;

    /**
     * 整改复查填写意见
     */
    private String reviewContent;

    /**
     * 整改复查时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "整改复查时间" ,width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;


    /**
     * 整改复查审核状态  0 通过 1驳回
     */
    @Excel(name = "复查审核状态",readConverterExp = "0=通过,1=驳回")
    private Integer approvalStatus;

    /** 经度*/
    private BigDecimal reviewLongitude;

    /** 纬度*/
    private BigDecimal reviewLatitude;

    /** 道路名称*/
    private String reviewRoadName;

    /** 方向*/
    private String reviewDirection;
}
